/*
 * 文件名：OrderInfo.java
 * 版权：Copyright by www.huawei.com
 * 描述：
 * 修改人：zhangshaohua
 * 修改时间：2016年4月25日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.zcsy.manage.model.mall;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 
 * @Title: OrderInfo.java
 * @Package： com.zcsy.manage.model.mall
 * @Description: 订单实体类
 * @author zhangsh zsh3384027@gmail.com
 * @Copyright: 2016 武汉恒数利通技术有限公司 All rights reserved.
 * @date 2016年4月25日
 * @version 1.0
 * @see JDK1.8.0_45
 * @since
 */
public class OrderInfo {
	
	/** 主键id */
	private String id;
	
	/** 订单号 支付使用 */
	private String orderNumber;
	
	/** 商品总价 */
	private BigDecimal totalPrice;
	
	/** 优惠券ID 仅针对正常订单 */
	private String couponId;
	
	/** 优惠券抵扣金额 仅针对正常订单 */
	private BigDecimal couponPrice;
	
	/** 运费 */
	private BigDecimal carriage;
	
	/** 最终价格 仅针对正常订单 */
	private BigDecimal finalPrice;
	
	/** 花费积分 仅针对积分订单 */
	private Integer costIntegral;
	
	/** 赠送积分 仅针对正常订单 */
	private Integer giveIntegral;
	
	/** 店铺ID 为空表示平台商品 */
	private String shopId;
	
	/** 小区ID */
	private String cellId;
	
	/** 类型 1正常订单，2积分订单，3秒杀订单 */
	private Integer type;
	
	/**
	 * 状态:0待付款，1待确认，2待发货，3配送中， 4已完成，5已取消，6退款申请，7退款已确认， 8退款已完成，9退款已拒绝，10退货申请，
	 * 11退货已确认，12退货已完成， 13退货已拒绝
	 */
	private Integer state;
	
	/** 配送方式: 1配送公司配送，2自提，3无配送 */
	private Integer distributionType;
	
	/** 配送方式: 1配送公司配送，2自提，3无配送 */
	private Integer isBySelf;
	
	/** 是否需要商家确认 1是、0否 */
	private Integer isNeedConfirm;
	
	/** 账号 */
	private String userAccount;
	
	/** 联系人 */
	private String contactor;
	
	/** 联系电话 */
	private String contactorPhone;
	
	/** 联系地址 */
	private String contactorAddress;
	
	/** 订单备注 */
	private String remark;
	
	/** 商家留言 */
	private String shopMsg;
	
	/** 创建时间 */
	private Date createTime;
	
	/** 支付时间 */
	private Date payTime;
	
	/** 商户确认时间 */
	private Date sureTime;
	
	/** 发货时间 商户点击发货 */
	private Date sendTime;
	
	/** 发货账号 */
	private String sendAccount;
	
	/** 配送送达时间 配送员点击送达 */
	private Date arriveTime;
	
	/** 确认收货时间 业主点击确认收货 */
	private Date confirmTime;
	
	/** 取消订单时间 */
	private Date cancelTime;
	
	/** 期望收货时间 */
	private Date expectTime;
	
	/** 取消人类型 1商户2业主 */
	private Integer cancelType;
	
	/** 取消人账 */
	private String cancelAccount;
	
	/** 退款申请时间 */
	private Date refundRequestTime;
	
	/** 退款确认时间 商家 */
	private Date refundConfirmTime;
	
	/** 退款确认账号 */
	private String refundConfirmAccount;
	
	/** 退款完成时间 运营 */
	private Date refundSuccessTime;
	
	/** 退款完成账号 */
	private String refundSuccessAccount;
	
	/** 退货申请时间 */
	private Date returnRequestTime;
	
	/** 退货确认时间 商家 */
	private Date returnConfirmTime;
	
	/** 退货确认账号 */
	private String returnConfirmAccount;
	
	/** 退货完成时间 运营 */
	private Date returnSuccessTime;
	
	/** 退货完成账号 */
	private String returnSuccessAccount;
	
	/** 支付方式 1支付宝，2微信，3贝壳支付 */
	private Integer payType;
	
	/** 支付系统 1web、2app */
	private Integer paySystem;
	
	/** 评论方式 1未评论，2已评论 */
	private Integer reviewState;
	
	/** 支付机构订单号 */
	private String externalTradeNo;
	
	/** 支付机构返回码 */
	private String externalRespCode;
	
	/** 支付机构返回价格 */
	private BigDecimal totalFee;
	
	/** 收款账号ID */
	private String collectAccount;
	
	/** 发票类型 0不需要，1个人，2单位 */
	private Integer billType;
	
	/** 发票抬头 */
	private String billTitle;
	
	/** 订单等级 1一级，2二级 */
	private int orderLevel;
	
	/** 父订单ID */
	private String parentId;
	
	private String memo;

	/**
	 * 开始时间
	 */
	private String beginTime;

	/**
	 * 结束时间<br>
	 */
	private String endTime;

	/**
	 * 抢单人登录名
	 */
	private String senderAccount;

	/**
	 * 指派订单人登录名
	 */
	private String assignAccount;
	
	/**
	 * 指派订单人电话
	 */
	private String assignPhone;

	/**
	 * 抢单/指派订单时间
	 */
	private Date rushTime;
	
	/**
	 * 申请退款/退货理由
	 */
	private String reason;

	/**
	 * 用于存储当前订单的订单详情信息<br>
	 */
	private List<OrderDetailInfoView> orderDetails;

	/**
	 * 1:退款 2：退货   3:待确认<br>
	 */
	private int stateType;
	
	/**
	 * 月份
	 */
	private String months;
	
	/**
	 * 每月订单数量
	 */
	private Integer count;
	
	/**
	 * secType 1：固定搜索 2：自由搜索<br>
	 */
	private int secType;
	
	//仅接口需要
	private String shopName;
	private String shopAddress;
	private String shopPhone;
	private String searchKey;
	private Integer shopOrderState;
	
	private String rectAddrId; // 收货地址
	private String senderName; //配送员姓名
	private String senderPhone;//配送员电话
	private String assignName; //配送管理员
	
    /**
	 * 返回当前订单的商品信息<br>
	 */
	private List<OrderDetailInfo> orderDetailList;
	

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getOrderNumber() {
		return orderNumber;
	}

	public void setOrderNumber(String orderNumber) {
		this.orderNumber = orderNumber;
	}

	public BigDecimal getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(BigDecimal totalPrice) {
		this.totalPrice = totalPrice;
	}

	public String getCouponId() {
		return couponId;
	}

	public void setCouponId(String couponId) {
		this.couponId = couponId;
	}

	public BigDecimal getCouponPrice() {
		return couponPrice;
	}

	public void setCouponPrice(BigDecimal couponPrice) {
		this.couponPrice = couponPrice;
	}

	public BigDecimal getCarriage() {
		return carriage;
	}

	public void setCarriage(BigDecimal carriage) {
		this.carriage = carriage;
	}

	public BigDecimal getFinalPrice() {
		return finalPrice;
	}

	public void setFinalPrice(BigDecimal finalPrice) {
		this.finalPrice = finalPrice;
	}

	public Integer getCostIntegral() {
		return costIntegral;
	}

	public void setCostIntegral(Integer costIntegral) {
		this.costIntegral = costIntegral;
	}

	public Integer getGiveIntegral() {
		return giveIntegral;
	}

	public void setGiveIntegral(Integer giveIntegral) {
		this.giveIntegral = giveIntegral;
	}

	public String getShopId() {
		return shopId;
	}

	public void setShopId(String shopId) {
		this.shopId = shopId;
	}

	public String getCellId() {
		return cellId;
	}

	public void setCellId(String cellId) {
		this.cellId = cellId;
	}

	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	public Integer getState() {
		return state;
	}

	public void setState(Integer state) {
		this.state = state;
	}

	public Integer getDistributionType() {
		return distributionType;
	}

	public void setDistributionType(Integer distributionType) {
		this.distributionType = distributionType;
	}

	public Integer getIsBySelf() {
		return isBySelf;
	}

	public void setIsBySelf(Integer isBySelf) {
		this.isBySelf = isBySelf;
	}

	public Integer getIsNeedConfirm() {
		return isNeedConfirm;
	}

	public void setIsNeedConfirm(Integer isNeedConfirm) {
		this.isNeedConfirm = isNeedConfirm;
	}

	public String getUserAccount() {
		return userAccount;
	}

	public void setUserAccount(String userAccount) {
		this.userAccount = userAccount;
	}

	public String getContactor() {
		return contactor;
	}

	public void setContactor(String contactor) {
		this.contactor = contactor;
	}

	public String getContactorPhone() {
		return contactorPhone;
	}

	public void setContactorPhone(String contactorPhone) {
		this.contactorPhone = contactorPhone;
	}

	public String getContactorAddress() {
		return contactorAddress;
	}

	public void setContactorAddress(String contactorAddress) {
		this.contactorAddress = contactorAddress;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getShopMsg() {
		return shopMsg;
	}

	public void setShopMsg(String shopMsg) {
		this.shopMsg = shopMsg;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getPayTime() {
		return payTime;
	}

	public void setPayTime(Date payTime) {
		this.payTime = payTime;
	}

	public Date getSureTime() {
		return sureTime;
	}

	public void setSureTime(Date sureTime) {
		this.sureTime = sureTime;
	}

	public Date getSendTime() {
		return sendTime;
	}

	public void setSendTime(Date sendTime) {
		this.sendTime = sendTime;
	}

	public String getSendAccount() {
		return sendAccount;
	}

	public void setSendAccount(String sendAccount) {
		this.sendAccount = sendAccount;
	}

	public Date getConfirmTime() {
		return confirmTime;
	}

	public void setConfirmTime(Date confirmTime) {
		this.confirmTime = confirmTime;
	}

	public Date getCancelTime() {
		return cancelTime;
	}

	public void setCancelTime(Date cancelTime) {
		this.cancelTime = cancelTime;
	}

	public Date getExpectTime() {
		return expectTime;
	}

	public void setExpectTime(Date expectTime) {
		this.expectTime = expectTime;
	}

	public Integer getCancelType() {
		return cancelType;
	}

	public void setCancelType(Integer cancelType) {
		this.cancelType = cancelType;
	}

	public String getCancelAccount() {
		return cancelAccount;
	}

	public void setCancelAccount(String cancelAccount) {
		this.cancelAccount = cancelAccount;
	}

	public Date getRefundRequestTime() {
		return refundRequestTime;
	}

	public void setRefundRequestTime(Date refundRequestTime) {
		this.refundRequestTime = refundRequestTime;
	}

	public Date getRefundConfirmTime() {
		return refundConfirmTime;
	}

	public void setRefundConfirmTime(Date refundConfirmTime) {
		this.refundConfirmTime = refundConfirmTime;
	}

	public String getRefundConfirmAccount() {
		return refundConfirmAccount;
	}

	public void setRefundConfirmAccount(String refundConfirmAccount) {
		this.refundConfirmAccount = refundConfirmAccount;
	}

	public Date getRefundSuccessTime() {
		return refundSuccessTime;
	}

	public void setRefundSuccessTime(Date refundSuccessTime) {
		this.refundSuccessTime = refundSuccessTime;
	}

	public String getRefundSuccessAccount() {
		return refundSuccessAccount;
	}

	public void setRefundSuccessAccount(String refundSuccessAccount) {
		this.refundSuccessAccount = refundSuccessAccount;
	}

	public Date getReturnRequestTime() {
		return returnRequestTime;
	}

	public void setReturnRequestTime(Date returnRequestTime) {
		this.returnRequestTime = returnRequestTime;
	}

	public Date getReturnConfirmTime() {
		return returnConfirmTime;
	}

	public void setReturnConfirmTime(Date returnConfirmTime) {
		this.returnConfirmTime = returnConfirmTime;
	}

	public String getReturnConfirmAccount() {
		return returnConfirmAccount;
	}

	public void setReturnConfirmAccount(String returnConfirmAccount) {
		this.returnConfirmAccount = returnConfirmAccount;
	}

	public Date getReturnSuccessTime() {
		return returnSuccessTime;
	}

	public void setReturnSuccessTime(Date returnSuccessTime) {
		this.returnSuccessTime = returnSuccessTime;
	}

	public String getReturnSuccessAccount() {
		return returnSuccessAccount;
	}

	public void setReturnSuccessAccount(String returnSuccessAccount) {
		this.returnSuccessAccount = returnSuccessAccount;
	}

	public Integer getPayType() {
		return payType;
	}

	public void setPayType(Integer payType) {
		this.payType = payType;
	}

	public Integer getPaySystem() {
		return paySystem;
	}

	public void setPaySystem(Integer paySystem) {
		this.paySystem = paySystem;
	}

	public Integer getReviewState() {
		return reviewState;
	}

	public void setReviewState(Integer reviewState) {
		this.reviewState = reviewState;
	}

	public String getExternalTradeNo() {
		return externalTradeNo;
	}

	public void setExternalTradeNo(String externalTradeNo) {
		this.externalTradeNo = externalTradeNo;
	}

	public String getExternalRespCode() {
		return externalRespCode;
	}

	public void setExternalRespCode(String externalRespCode) {
		this.externalRespCode = externalRespCode;
	}

	public BigDecimal getTotalFee() {
		return totalFee;
	}

	public void setTotalFee(BigDecimal totalFee) {
		this.totalFee = totalFee;
	}

	public String getCollectAccount() {
		return collectAccount;
	}

	public void setCollectAccount(String collectAccount) {
		this.collectAccount = collectAccount;
	}

	public Integer getBillType() {
		return billType;
	}

	public void setBillType(Integer billType) {
		this.billType = billType;
	}

	public int getOrderLevel() {
		return orderLevel;
	}

	public void setOrderLevel(int orderLevel) {
		this.orderLevel = orderLevel;
	}

	public String getParentId() {
		return parentId;
	}

	public void setParentId(String parentId) {
		this.parentId = parentId;
	}

	public String getMemo() {
		return memo;
	}

	public void setMemo(String memo) {
		this.memo = memo;
	}

	public String getBeginTime() {
		return beginTime;
	}

	public void setBeginTime(String beginTime) {
		this.beginTime = beginTime;
	}

	public String getEndTime() {
		return endTime;
	}

	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}

	public Date getArriveTime() {
		return arriveTime;
	}

	public void setArriveTime(Date arriveTime) {
		this.arriveTime = arriveTime;
	}

	public String getBillTitle() {
		return billTitle;
	}

	public void setBillTitle(String billTitle) {
		this.billTitle = billTitle;
	}

	public String getSenderAccount() {
		return senderAccount;
	}

	public void setSenderAccount(String senderAccount) {
		this.senderAccount = senderAccount;
	}

	public String getAssignAccount() {
		return assignAccount;
	}

	public String getAssignPhone() {
		return assignPhone;
	}

	public void setAssignPhone(String assignPhone) {
		this.assignPhone = assignPhone;
	}

	public void setAssignAccount(String assignAccount) {
		this.assignAccount = assignAccount;
	}

	public Date getRushTime() {
		return rushTime;
	}

	public void setRushTime(Date rushTime) {
		this.rushTime = rushTime;
	}
	
	public String getReason() {
		return reason;
	}

	public void setReason(String reason) {
		this.reason = reason;
	}

	public List<OrderDetailInfoView> getOrderDetails() {
		return orderDetails;
	}

	public void setOrderDetails(List<OrderDetailInfoView> orderDetails) {
		this.orderDetails = orderDetails;
	}

	public int getStateType() {
		return stateType;
	}

	public void setStateType(int stateType) {
		this.stateType = stateType;
	}

	public String getShopName() {
		return shopName;
	}

	public void setShopName(String shopName) {
		this.shopName = shopName;
	}

	public String getShopAddress() {
		return shopAddress;
	}

	public void setShopAddress(String shopAddress) {
		this.shopAddress = shopAddress;
	}

	public String getShopPhone() {
		return shopPhone;
	}

	public void setShopPhone(String shopPhone) {
		this.shopPhone = shopPhone;
	}

	public List<OrderDetailInfo> getOrderDetailList() {
		return orderDetailList;
	}

	public void setOrderDetailList(List<OrderDetailInfo> orderDetailList) {
		this.orderDetailList = orderDetailList;
	}

	public String getSearchKey() {
        return searchKey;
    }

    public void setSearchKey(String searchKey) {
        this.searchKey = searchKey;
    }
    
    public Integer getShopOrderState() {
        return shopOrderState;
    }

    public void setShopOrderState(Integer shopOrderState) {
        this.shopOrderState = shopOrderState;
    }

    public String getRectAddrId() {
        return rectAddrId;
    }

    public void setRectAddrId(String rectAddrId) {
        this.rectAddrId = rectAddrId;
    }

    public String getSenderName() {
        return senderName;
    }

    public void setSenderName(String senderName) {
        this.senderName = senderName;
    }

    public String getSenderPhone() {
        return senderPhone;
    }

    public void setSenderPhone(String senderPhone) {
        this.senderPhone = senderPhone;
    }

	public String getMonths() {
		return months;
	}

	public void setMonths(String months) {
		this.months = months;
	}

	public Integer getCount() {
		return count;
	}

	public void setCount(Integer count) {
		this.count = count;
	}

	public int getSecType() {
		return secType;
	}

	public void setSecType(int secType) {
		this.secType = secType;
	}

    public String getAssignName() {
        return assignName;
    }

    public void setAssignName(String assignName) {
        this.assignName = assignName;
    }
	
}
